$(document).ready(function() {

    var submitAddPageHandler = function() {
        var editor = nicEditors.findEditor('content');
        $('#content').val(editor.getContent());
        var newPage = $("#newPage").serializeObject();
        $.ajax({
            type: "post",
            contentType: "application/json",
            dataType: "json",
            url: "createPage.do",
            data: JSON.stringify(newPage),
            success: function(page) {
                $('#createPageContainer').closeWindow();
                $("#newPage").resetForm();
                editor.setContent('');
                $('#page-list-content').append(
                    '<div> \
                        <div class="ellipsis"><a id="pageId_' + page.pageId +'" href="#" onclick="onPageView(this)" >' + page.name + '</a></div> \
                        <div style="margin-left: 145px; width:15px;"><input id="pageRemoveId_' + page.pageId + '" type="button" onclick="onPageRemove(this)" class="close-button" title="Удалить страницу"/></div> \
                    </div>'
                );
                var element = $('#page-list-container a#pageId_' + page.pageId);
                onPageView(element[0]);
            },
            error: function(data) {
                alert("data = " + data);
            }
        });
        return false;
    }


    $('#createPageBtn').on('click', function(){
        $("#pageHeader").text("Создание новой web-страницы");
        $("#submit_page_button").val("Создать");
        $('#createPageContainer').popup();
        if (typeof nicE === 'undefined' || nicE === null ){
            nicE =  new nicEditor({fullPanel : true, iconsPath: '../resources/nicEditor/nicEditorIcons.gif'})
            nicE.panelInstance('content', content);
        }
        $("#newPage").resetForm();
        nicE.instanceById('content').setContent("");
        $("#newPage").off('submit');
        $("#newPage").unbind("onsubmit");
        $("#newPage").on('submit',submitAddPageHandler);
    });

    $('#viewPage').on('submit', onPageEdit);

//    var element = $('#app-page-list tr:first-child a');
//    onPageView(element[0]);
    selectFirstItem();
});

function selectFirstItem(){
    var element = $('#page-list-content > div > div:first-child a');
    onPageView(element[0]);
}
function onPageView(element){
    var pageId = element.id.replace('pageId_','');
    $('.active-yellow-item').removeClass('active-yellow-item');
    $(element).parent().parent().addClass('active-yellow-item');
    $("#viewPage").resetForm();
    $.ajax({
        type: 'post',
        dataType: 'json',
        data: {'pageId': pageId},
        url: "getPageById.do",
        success: function(page) {
            $("#viewPage").loadJSON(page);
            $("#view-page-content").val(page.content);
        },
        error: function(data) {
            alert('data = ' + data);
        }
    });

};

function onPageEdit(){
    var page = $('#viewPage').serializeObject();

    var submitEditPageHandler = function() {
        var editor = nicEditors.findEditor('content');
        $('#content').val(editor.getContent());
        var newPage = $("#newPage").serializeObject();
        $.ajax({
            type: "post",
            contentType: "application/json",
            dataType: "json",
            url: "updatePage.do",
            data: JSON.stringify(newPage),
            success: function(updatedPage) {
                $("#viewPage").resetForm();
                $("#viewPage").loadJSON(updatedPage);
                $("#view-page-content").val(updatedPage.content);

                $('#createPageContainer').closeWindow();
                $("#newPage").resetForm();
                editor.setContent('');
                $('a#pageId_' + updatedPage.pageId).text(updatedPage.name);
            },
            error: function(data) {
                alert("data = " + data);
            }
        });
        return false;
    }

    $("#pageHeader").text("Изменение web-страницы");
    $("#submit_page_button").val("Изменить");

    $("#newPage").off('submit');
    $("#newPage").unbind("onsubmit");
    $("#newPage").on('submit',submitEditPageHandler);

    $("#newPage").resetForm();

    $('#createPageContainer').popup();
    if(typeof nicE === 'undefined' || nicE === null){
        nicE =  new nicEditor({fullPanel : true, iconsPath: '../resources/nicEditor/nicEditorIcons.gif'})
        nicE.panelInstance('content', $("#newPage #content"));
    }
    nicE.instanceById('content').setContent(page.content);
    $("#newPage").loadJSON(page);

    return false;
}

//function onPageEdit(element){
//    var pageId = element.id.replace('pageId_','');
//    var submitEditPageHandler = function() {
//        var editor = nicEditors.findEditor('content');
//        $('#content').val(editor.getContent());
//        var newPage = $("#newPage").serializeObject();
//        $.ajax({
//            type: "post",
//            contentType: "application/json",
//            dataType: "json",
//            url: "updatePage.do",
//            data: JSON.stringify(newPage),
//            success: function(page) {
//                $('#createPageContainer').closeWindow();
//                $("#newPage").resetForm();
//                editor.setContent('');
//                $('a#pageId_' + page.pageId).text(page.name);
//            },
//            error: function(data) {
//                alert("data = " + data);
//            }
//        });
//        return false;
//    }
//
//    $("#pageHeader").text("Изменение web-страницы");
//    $("#submit_page_button").val("Изменить");
//
//    $("#newPage").off('submit');
//    $("#newPage").unbind("onsubmit");
//    $("#newPage").on('submit',submitEditPageHandler);
//
//    $("#newPage").resetForm();
//    $.ajax({
//        type: 'post',
//        dataType: 'json',
//        data: {'pageId': pageId},
//        url: "getPageById.do",
//        success: function(page) {
//            $('#createPageContainer').popup();
//            if(typeof nicE === 'undefined' || nicE === null){
//                nicE =  new nicEditor({fullPanel : true, iconsPath: '../resources/nicEditor/nicEditorIcons.gif'})
//                nicE.panelInstance('content', $("#content"));
//            }
//            nicE.instanceById('content').setContent(page.content);
//            $("#newPage").loadJSON(page);
//
//        },
//        error: function(data) {
//            alert('data = ' + data);
//        }
//    });
//}

function onPageRemove(element){
    var pageId = element.id.replace('pageRemoveId_','');
    handlerOk = function(){
        $.ajax({
            type: 'post',
            dataType: 'json',
            data: {'pageId': pageId},
            url: "removePage.do",
            success: function(data) {
                $('#' + element.id).parent().parent().remove();
                selectFirstItem();
            },
            error: function(data) {
                alert('data = ' + data);
            }
        });
    };
    handlerNo = function(){};
    $(this).parent().showConfirm('230px','100px', handlerOk, handlerNo);
}

//$(window).load(function() {
//    mCustomScrollbars();
//});
//
//function mCustomScrollbars(){
//    /*
//     malihu custom scrollbar function parameters:
//     1) scroll type (values: "vertical" or "horizontal")
//     2) scroll easing amount (0 for no easing)
//     3) scroll easing type
//     4) extra bottom scrolling space for vertical scroll type only (minimum value: 1)
//     5) scrollbar height/width adjustment (values: "auto" or "fixed")
//     6) mouse-wheel support (values: "yes" or "no")
//     7) scrolling via buttons support (values: "yes" or "no")
//     8) buttons scrolling speed (values: 1-20, 1 being the slowest)
//     */
//
//    $("#mcs3_container").mCustomScrollbar("vertical",0,"easeOutCirc",1.05,"auto","yes","yes",4);
//}
///* function to fix the -10000 pixel limit of jquery.animate */
//$.fx.prototype.cur = function(){
//    if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {
//        return this.elem[ this.prop ];
//    }
//    var r = parseFloat( jQuery.css( this.elem, this.prop ) );
//    return typeof r == 'undefined' ? 0 : r;
//}
///* function to load new content dynamically */
//function LoadNewContent(id,file){
//    $("#"+id+" .customScrollBox .content").load(file,function(){
//        mCustomScrollbars();
//    });
//}